Skip to content

chore: merge docs repo into this repo#2526

Merged
tac0turtle merged 11 commits intomainfrom
marko/merge_docs
Aug 6, 2025
Merged

chore: merge docs repo into this repo#2526
tac0turtle merged 11 commits intomainfrom
marko/merge_docs

Conversation

@tac0turtle
Copy link
Contributor

Overview

merging docs into here in order to create a mono repo so its easier to keep things updated when we make changes here

@github-actions
Copy link
Contributor

github-actions bot commented Aug 6, 2025

The latest Buf updates on your PR. Results from workflow CI and Release / buf-check (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed⏩ skipped✅ passed✅ passedAug 6, 2025, 8:38 AM

@tac0turtle tac0turtle marked this pull request as ready for review August 6, 2025 06:48
@claude
Copy link
Contributor

claude bot commented Aug 6, 2025

Claude finished @tac0turtle's task —— View job


PR Review: Merge Docs Repo + Rebranding

I've conducted a comprehensive review of this large PR that merges the docs repository and rebrands from Rollkit to Evolve. Here's my feedback:

Overall Assessment

This is a well-executed merge and rebranding effort. The core code changes are consistent and logical, but several documentation and configuration issues need attention.


🔧 Code Quality & Best Practices

Strengths:

  • Consistent rebranding: Core Go code shows excellent consistency in renaming (e.g., SetRollkitHeightToDAHeightSetSequencerHeightToDAHeight)
  • Clean constant updates: Store keys properly renamed (RollkitHeightToDAHeightKeyHeightToDAHeightKey)
  • Proper prefix handling: RollkitPrefixEvPrefix with consistent usage

Areas for improvement:

  • Incomplete test updates: Several test files still reference "Rollkit" in comments and function names (TestSetRollkitHeightToDAHeight in block/manager_test.go:1072)
  • Documentation inconsistencies: The docs contain incorrect flag references - they use --evolve.* flags when the actual flags are still --rollkit.* (verified in pkg/config/config.go)

🔒 Security Concerns

High Priority:

  1. Workflow permissions: deploy_docs.yml:17 uses permissions: write-all - overly broad permissions
  2. Unpinned actions: GitHub Advanced Security correctly flagged unpinned action versions in workflows

Medium Priority:

  1. Edit link misconfiguration: VitePress config points to wrong repo (evstack/docs instead of evstack/ev-node)
  2. Domain inconsistencies: Mix of ev.xyz and evolve.dev domains in config

Performance Considerations

No significant performance impact identified. The rebranding primarily affects:

  • String constants and prefixes (minimal runtime impact)
  • Store key changes (backward compatible)
  • Function renaming (compile-time only)

🧪 Test Coverage Impact

Concerns:

  1. Outdated test documentation: Test functions and comments still reference old naming
  2. Potential coverage gaps: Need to verify all rebranded functions have corresponding updated tests

Recommendations:

  • Update test function names for consistency
  • Run full test suite to ensure rebranding doesn't break existing functionality

📚 Critical Documentation Issues

High Priority Fixes Needed:

  1. Flag Reference Errors (docs/learn/config.md and related files):

    - --evolve.node.aggregator
    + --rollkit.node.aggregator

    All configuration flags still use rollkit. prefix per pkg/config/config.go

  2. OpenAPI Specification (docs/src/openapi-rpc.json:4-15):

    • Title still says "Rollkit API"
    • Contact URL points to rollkit.dev
    • Server description mentions "Rollkit instance"
    • Service paths use /rollkit.v1.* instead of expected evnode.v1
  3. VitePress Configuration (docs/.vitepress/config.ts:133):

    - pattern: "https://github.com/evstack/docs/edit/main/:path"
    + pattern: "https://github.com/evstack/ev-node/edit/main/docs/:path"

Medium Priority:

  • Constants file still contains Rollkit references (docs/.vitepress/constants/constants.js:6)
  • Typo in README: "Evovle" should be "Evolve" (apps/grpc/single/README.md)
  • Community links may be outdated (Telegram links in callout component)

🚀 Workflow & CI/CD

Issues:

  1. Missing permissions: build_docs.yml flagged for missing explicit permissions
  2. Security: Unpinned action versions create supply chain risks

Recommendations:

# Fix for build_docs.yml
permissions:
  contents: read
  
# Pin action versions to commit hashes for security
- uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c2b194ce8f2f06d8a46d6ac1 # v4

📋 Action Items

Before merging:

  1. ❗ Fix all flag references in documentation (replace --evolve.* with --rollkit.*)
  2. ❗ Update OpenAPI specification with correct branding
  3. ❗ Fix VitePress edit link configuration
  4. 🔒 Address workflow security issues (pin actions, fix permissions)
  5. 🧹 Update remaining test function names and comments
  6. ✏️ Fix typos and domain inconsistencies

Technical debt:

  • Consider whether config flags should eventually be migrated from rollkit.* to ev.* or evolve.* for consistency

👍 Conclusion

This is a solid foundation for the monorepo structure. The core code changes are well-executed and maintain backward compatibility. The main issues are in documentation accuracy and security hardening - all fixable before merge.

The rebranding effort shows good attention to detail in the core codebase, but needs completion in tests and documentation to maintain consistency.


Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @tac0turtle, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

I've merged the separate documentation repository into this one, creating a monorepo. This change centralizes all project assets, making it significantly easier to keep the documentation updated alongside code changes. A major part of this effort involved a comprehensive rebranding, transitioning all mentions of 'Rollkit' to 'Evolve' or 'ev-node' across the entire codebase, including configuration, CLI tools, and internal logic. This streamlines development and ensures a consistent brand identity.

Highlights

  • Comprehensive Rebranding: The project has undergone a comprehensive rebranding, with all instances of "Rollkit" being replaced by "Evolve" or "ev-node" across documentation, code comments, configuration files, and application descriptions. This includes updates in issue templates, contributing guides, READMEs, and various application-specific files.
  • Documentation Monorepo Integration: The entire docs repository has been merged into this monorerepo, introducing a new documentation site built with VitePress. This integration includes new Vue components, configuration files, constants, and a complete set of learning guides, API documentation, and technical specifications, all reflecting the new "Evolve" branding.
  • Configuration and CLI Updates: Key configuration parameters and command-line flags have been updated to reflect the new branding, such as changing rollkit.yaml to evolve.yaml and rollkit-test to evolve-test for chain IDs and config files. Dockerfiles and docker-compose configurations have also been adjusted to use ev-node and evolve-data paths and names.
  • Internal Code Refactoring and Consistency: Internal code logic, particularly within the block and pkg/store directories, has been updated to align with the rebranding. This includes renaming functions like SetRollkitHeightToDAHeight to SetSequencerHeightToDAHeight and updating metadata keys from RollkitHeightToDAHeightKey to HeightToDAHeightKey, ensuring consistency in data storage and retrieval.
  • External Integration and Testing Alignment: Client libraries (Rust) and E2E tests have been updated to reflect the new naming conventions and domain changes (e.g., rollkit.dev to ev.xyz), ensuring that external integrations and testing environments are aligned with the new brand identity.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@tac0turtle tac0turtle enabled auto-merge August 6, 2025 06:49
- name: Build with VitePress
run: yarn build # or pnpm build / npm build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Deploy VitePress site to Pages' step
Uses Step
uses 'peaceiris/actions-gh-pages' with ref 'v4', not a pinned commit hash
run: BASE='/docs-preview/pr-${{ github.event.number }}/' yarn build

- name: Deploy preview
uses: rossjrw/pr-preview-action@v1

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Deploy PR previews' step
Uses Step
uses 'rossjrw/pr-preview-action' with ref 'v1', not a pinned commit hash
…ain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request merges the documentation repository and performs a large-scale rename from "Rollkit" to "Evolve"/"ev-node". The code changes for the rename are generally correct and consistent. However, the newly added documentation files contain several issues, including outdated links, incorrect flag names, and branding inconsistencies. I've provided specific comments to address these issues, with a focus on ensuring the documentation is accurate and up-to-date with the codebase changes.

Comment on lines +75 to +771
`--home <path>`
*Example:* `--home /mnt/data/evolve_node`
*Default:* `~/.evolve` (or a directory derived from the application name if `defaultHome` is customized).
*Constant:* `FlagRootDir`

### Database Path

**Description:**
The path, relative to the Root Directory, where the Evolve database will be stored. This database contains blockchain state, blocks, and other critical node data.

**YAML:**
Set this in your configuration file at the top level:

```yaml
db_path: "data"
```

**Command-line Flag:**
`--evolve.db_path <path>`
*Example:* `--evolve.db_path "node_db"`
*Default:* `"data"`
*Constant:* `FlagDBPath`

### Chain ID

**Description:**
The unique identifier for your chain. This ID is used to differentiate your network from others and is crucial for network communication and transaction validation.

**YAML:**
Set this in your configuration file at the top level:

```yaml
chain_id: "my-evolve-chain"
```

**Command-line Flag:**
`--chain_id <string>`
*Example:* `--chain_id "super_rollup_testnet_v1"`
*Default:* `"evolve"`
*Constant:* `FlagChainID`

## Node Configuration (`node`)

Settings related to the core behavior of the Evolve node, including its mode of operation and block production parameters.

**YAML Section:**

```yaml
node:
# ... node configurations ...
```

### Aggregator Mode

**Description:**
If true, the node runs in aggregator mode. Aggregators are responsible for producing blocks by collecting transactions, ordering them, and proposing them to the network.

**YAML:**

```yaml
node:
aggregator: true
```

**Command-line Flag:**
`--evolve.node.aggregator` (boolean, presence enables it)
*Example:* `--evolve.node.aggregator`
*Default:* `false`
*Constant:* `FlagAggregator`

### Light Client Mode

**Description:**
If true, the node runs in light client mode. Light clients rely on full nodes for block headers and state information, offering a lightweight way to interact with the chain without storing all data.

**YAML:**

```yaml
node:
light: true
```

**Command-line Flag:**
`--evolve.node.light` (boolean, presence enables it)
*Example:* `--evolve.node.light`
*Default:* `false`
*Constant:* `FlagLight`

### Block Time

**Description:**
The target time interval between consecutive blocks produced by an aggregator. This duration (e.g., "500ms", "1s", "5s") dictates the pace of block production.

**YAML:**

```yaml
node:
block_time: "1s"
```

**Command-line Flag:**
`--evolve.node.block_time <duration>`
*Example:* `--evolve.node.block_time 2s`
*Default:* `"1s"`
*Constant:* `FlagBlockTime`

### Maximum Pending Blocks

**Description:**
The maximum number of blocks that can be pending Data Availability (DA) submission. When this limit is reached, the aggregator pauses block production until some blocks are confirmed on the DA layer. Use 0 for no limit. This helps manage resource usage and DA layer capacity.

**YAML:**

```yaml
node:
max_pending_blocks: 100
```

**Command-line Flag:**
`--evolve.node.max_pending_blocks <uint64>`
*Example:* `--evolve.node.max_pending_blocks 50`
*Default:* `0` (no limit)
*Constant:* `FlagMaxPendingBlocks`

### Lazy Mode (Lazy Aggregator)

**Description:**
Enables lazy aggregation mode. In this mode, blocks are produced only when new transactions are available in the mempool or after the `lazy_block_interval` has passed. This optimizes resource usage by avoiding the creation of empty blocks during periods of inactivity.

**YAML:**

```yaml
node:
lazy_mode: true
```

**Command-line Flag:**
`--evolve.node.lazy_mode` (boolean, presence enables it)
*Example:* `--evolve.node.lazy_mode`
*Default:* `false`
*Constant:* `FlagLazyAggregator`

### Lazy Block Interval

**Description:**
The maximum time interval between blocks when running in lazy aggregation mode (`lazy_mode`). This ensures that blocks are produced periodically even if there are no new transactions, keeping the chain active. This value is generally larger than `block_time`.

**YAML:**

```yaml
node:
lazy_block_interval: "30s"
```

**Command-line Flag:**
`--evolve.node.lazy_block_interval <duration>`
*Example:* `--evolve.node.lazy_block_interval 1m`
*Default:* `"30s"`
*Constant:* `FlagLazyBlockTime`

### Trusted Hash

**Description:**
The initial trusted hash used to bootstrap the header exchange service. This allows nodes to start synchronizing from a specific, trusted point in the chain history instead of from the genesis block. When provided, the node will fetch the corresponding header/block from peers using this hash. If not provided, the node attempts to sync from genesis.

**YAML:**

```yaml
node:
trusted_hash: "YOUR_TRUSTED_HASH_HEX_STRING"
```

**Command-line Flag:**
`--evolve.node.trusted_hash <string>`
*Example:* `--evolve.node.trusted_hash ABCDEF012345...`
*Default:* `""` (empty, sync from genesis)
*Constant:* `FlagTrustedHash`

## Data Availability Configuration (`da`)

Parameters for connecting and interacting with the Data Availability (DA) layer, which Evolve uses to publish block data.

**YAML Section:**

```yaml
da:
# ... DA configurations ...
```

### DA Service Address

**Description:**
The network address (host:port) of the Data Availability layer service. Evolve connects to this endpoint to submit and retrieve block data.

**YAML:**

```yaml
da:
address: "localhost:26659"
```

**Command-line Flag:**
`--evolve.da.address <string>`
*Example:* `--evolve.da.address 192.168.1.100:26659`
*Default:* `""` (empty, must be configured if DA is used)
*Constant:* `FlagDAAddress`

### DA Authentication Token

**Description:**
The authentication token required to interact with the DA layer service, if the service mandates authentication.

**YAML:**

```yaml
da:
auth_token: "YOUR_DA_AUTH_TOKEN"
```

**Command-line Flag:**
`--evolve.da.auth_token <string>`
*Example:* `--evolve.da.auth_token mysecrettoken`
*Default:* `""` (empty)
*Constant:* `FlagDAAuthToken`

### DA Gas Price

**Description:**
The gas price to use for transactions submitted to the DA layer. A value of -1 indicates automatic gas price determination (if supported by the DA layer). Higher values may lead to faster inclusion of data.

**YAML:**

```yaml
da:
gas_price: 0.025
```

**Command-line Flag:**
`--evolve.da.gas_price <float64>`
*Example:* `--evolve.da.gas_price 0.05`
*Default:* `-1` (automatic)
*Constant:* `FlagDAGasPrice`

### DA Gas Multiplier

**Description:**
A multiplier applied to the gas price when retrying failed DA submissions. Values greater than 1 increase the gas price on retries, potentially improving the chances of successful inclusion.

**YAML:**

```yaml
da:
gas_multiplier: 1.1
```

**Command-line Flag:**
`--evolve.da.gas_multiplier <float64>`
*Example:* `--evolve.da.gas_multiplier 1.5`
*Default:* `1.0` (no multiplication)
*Constant:* `FlagDAGasMultiplier`

### DA Submit Options

**Description:**
Additional options passed to the DA layer when submitting data. The format and meaning of these options depend on the specific DA implementation being used.

**YAML:**

```yaml
da:
submit_options: "{"key":"value"}" # Example, format depends on DA layer
```

**Command-line Flag:**
`--evolve.da.submit_options <string>`
*Example:* `--evolve.da.submit_options '{"custom_param":true}'`
*Default:* `""` (empty)
*Constant:* `FlagDASubmitOptions`

### DA Namespace

**Description:**
The namespace ID used when submitting blobs (block data) to the DA layer. This helps segregate data from different chains or applications on a shared DA layer.

**YAML:**

```yaml
da:
namespace: "MY_UNIQUE_NAMESPACE_ID"
```

**Command-line Flag:**
`--evolve.da.namespace <string>`
*Example:* `--evolve.da.namespace 0x1234567890abcdef`
*Default:* `""` (empty, must be configured)
*Constant:* `FlagDANamespace`

### DA Block Time

**Description:**
The average block time of the Data Availability chain (specified as a duration string, e.g., "15s", "1m"). This value influences:

- The frequency of DA layer syncing.
- The maximum backoff time for retrying DA submissions.
- Calculation of transaction expiration when multiplied by `mempool_ttl`.

**YAML:**

```yaml
da:
block_time: "6s"
```

**Command-line Flag:**
`--evolve.da.block_time <duration>`
*Example:* `--evolve.da.block_time 12s`
*Default:* `"6s"`
*Constant:* `FlagDABlockTime`

### DA Start Height

**Description:**
The block height on the DA layer from which Evolve should begin syncing. This is useful when deploying a new chain on an existing DA chain, allowing it to ignore historical data before its inception.

**YAML:**

```yaml
da:
start_height: 100000
```

**Command-line Flag:**
`--evolve.da.start_height <uint64>`
*Example:* `--evolve.da.start_height 500000`
*Default:* `0` (sync from the beginning)
*Constant:* `FlagDAStartHeight`

### DA Mempool TTL

**Description:**
The number of DA blocks after which a transaction submitted to the DA layer is considered expired and potentially dropped from the DA layer's mempool. This also controls the retry backoff timing for DA submissions.

**YAML:**

```yaml
da:
mempool_ttl: 20
```

**Command-line Flag:**
`--evolve.da.mempool_ttl <uint64>`
*Example:* `--evolve.da.mempool_ttl 30`
*Default:* `20`
*Constant:* `FlagDAMempoolTTL`

## P2P Configuration (`p2p`)

Settings for peer-to-peer networking, enabling nodes to discover each other, exchange blocks, and share transactions.

**YAML Section:**

```yaml
p2p:
# ... P2P configurations ...
```

### P2P Listen Address

**Description:**
The network address (host:port) on which the Evolve node will listen for incoming P2P connections from other nodes.

**YAML:**

```yaml
p2p:
listen_address: "0.0.0.0:7676"
```

**Command-line Flag:**
`--evolve.p2p.listen_address <string>`
*Example:* `--evolve.p2p.listen_address /ip4/127.0.0.1/tcp/26656`
*Default:* `"/ip4/0.0.0.0/tcp/7676"`
*Constant:* `FlagP2PListenAddress`

### P2P Peers

**Description:**
A comma-separated list of peer addresses (e.g., multiaddresses) that the node will attempt to connect to for bootstrapping its P2P connections. These are often referred to as seed nodes.

**YAML:**

```yaml
p2p:
peers: "/ip4/some_peer_ip/tcp/7676/p2p/PEER_ID1,/ip4/another_peer_ip/tcp/7676/p2p/PEER_ID2"
```

**Command-line Flag:**
`--evolve.p2p.peers <string>`
*Example:* `--evolve.p2p.peers /dns4/seed.example.com/tcp/26656/p2p/12D3KooW...`
*Default:* `""` (empty)
*Constant:* `FlagP2PPeers`

### P2P Blocked Peers

**Description:**
A comma-separated list of peer IDs that the node should block from connecting. This can be used to prevent connections from known malicious or problematic peers.

**YAML:**

```yaml
p2p:
blocked_peers: "PEER_ID_TO_BLOCK1,PEER_ID_TO_BLOCK2"
```

**Command-line Flag:**
`--evolve.p2p.blocked_peers <string>`
*Example:* `--evolve.p2p.blocked_peers 12D3KooW...,12D3KooX...`
*Default:* `""` (empty)
*Constant:* `FlagP2PBlockedPeers`

### P2P Allowed Peers

**Description:**
A comma-separated list of peer IDs that the node should exclusively allow connections from. If this list is non-empty, only peers in this list will be able to connect.

**YAML:**

```yaml
p2p:
allowed_peers: "PEER_ID_TO_ALLOW1,PEER_ID_TO_ALLOW2"
```

**Command-line Flag:**
`--evolve.p2p.allowed_peers <string>`
*Example:* `--evolve.p2p.allowed_peers 12D3KooY...,12D3KooZ...`
*Default:* `""` (empty, allow all unless blocked)
*Constant:* `FlagP2PAllowedPeers`

## RPC Configuration (`rpc`)

Settings for the Remote Procedure Call (RPC) server, which allows clients and applications to interact with the Evolve node.

**YAML Section:**

```yaml
rpc:
# ... RPC configurations ...
```

### RPC Server Address

**Description:**
The network address (host:port) to which the RPC server will bind and listen for incoming requests.

**YAML:**

```yaml
rpc:
address: "127.0.0.1:7331"
```

**Command-line Flag:**
`--evolve.rpc.address <string>`
*Example:* `--evolve.rpc.address 0.0.0.0:26657`
*Default:* `"127.0.0.1:7331"`
*Constant:* `FlagRPCAddress`

## Instrumentation Configuration (`instrumentation`)

Settings for enabling and configuring metrics and profiling endpoints, useful for monitoring node performance and debugging.

**YAML Section:**

```yaml
instrumentation:
# ... instrumentation configurations ...
```

### Enable Prometheus Metrics

**Description:**
If true, enables the Prometheus metrics endpoint, allowing Prometheus to scrape operational data from the Evolve node.

**YAML:**

```yaml
instrumentation:
prometheus: true
```

**Command-line Flag:**
`--evolve.instrumentation.prometheus` (boolean, presence enables it)
*Example:* `--evolve.instrumentation.prometheus`
*Default:* `false`
*Constant:* `FlagPrometheus`

### Prometheus Listen Address

**Description:**
The network address (host:port) where the Prometheus metrics server will listen for scraping requests.

See [Metrics](/guides/metrics.md) for more details on what metrics are exposed.

**YAML:**

```yaml
instrumentation:
prometheus_listen_addr: ":2112"
```

**Command-line Flag:**
`--evolve.instrumentation.prometheus_listen_addr <string>`
*Example:* `--evolve.instrumentation.prometheus_listen_addr 0.0.0.0:9090`
*Default:* `":2112"`
*Constant:* `FlagPrometheusListenAddr`

### Maximum Open Connections

**Description:**
The maximum number of simultaneous connections allowed for the metrics server (e.g., Prometheus endpoint).

**YAML:**

```yaml
instrumentation:
max_open_connections: 100
```

**Command-line Flag:**
`--evolve.instrumentation.max_open_connections <int>`
*Example:* `--evolve.instrumentation.max_open_connections 50`
*Default:* (Refer to `DefaultInstrumentationConfig()` in code, typically a reasonable number like 100)
*Constant:* `FlagMaxOpenConnections`

### Enable Pprof Profiling

**Description:**
If true, enables the pprof HTTP endpoint, which provides runtime profiling data for debugging performance issues. Accessing these endpoints can help diagnose CPU and memory usage.

**YAML:**

```yaml
instrumentation:
pprof: true
```

**Command-line Flag:**
`--evolve.instrumentation.pprof` (boolean, presence enables it)
*Example:* `--evolve.instrumentation.pprof`
*Default:* `false`
*Constant:* `FlagPprof`

### Pprof Listen Address

**Description:**
The network address (host:port) where the pprof HTTP server will listen for profiling requests.

**YAML:**

```yaml
instrumentation:
pprof_listen_addr: "localhost:6060"
```

**Command-line Flag:**
`--evolve.instrumentation.pprof_listen_addr <string>`
*Example:* `--evolve.instrumentation.pprof_listen_addr 0.0.0.0:6061`
*Default:* `"localhost:6060"`
*Constant:* `FlagPprofListenAddr`

## Logging Configuration (`log`)

Settings that control the verbosity and format of log output from the Evolve node. These are typically set via global flags.

**YAML Section:**

```yaml
log:
# ... logging configurations ...
```

### Log Level

**Description:**
Sets the minimum severity level for log messages to be displayed. Common levels include `debug`, `info`, `warn`, `error`.

**YAML:**

```yaml
log:
level: "info"
```

**Command-line Flag:**
`--log.level <string>` (Note: some applications might use a different flag name like `--log_level`)
*Example:* `--log.level debug`
*Default:* `"info"`
*Constant:* `FlagLogLevel` (value: "evolve.log.level", but often overridden by global app flags)

### Log Format

**Description:**
Sets the format for log output. Common formats include `text` (human-readable) and `json` (structured, machine-readable).

**YAML:**

```yaml
log:
format: "text"
```

**Command-line Flag:**
`--log.format <string>` (Note: some applications might use a different flag name like `--log_format`)
*Example:* `--log.format json`
*Default:* `"text"`
*Constant:* `FlagLogFormat` (value: "evolve.log.format", but often overridden by global app flags)

### Log Trace (Stack Traces)

**Description:**
If true, enables the inclusion of stack traces in error logs. This can be very helpful for debugging issues by showing the call stack at the point of an error.

**YAML:**

```yaml
log:
trace: false
```

**Command-line Flag:**
`--log.trace` (boolean, presence enables it; Note: some applications might use a different flag name like `--log_trace`)
*Example:* `--log.trace`
*Default:* `false`
*Constant:* `FlagLogTrace` (value: "evolve.log.trace", but often overridden by global app flags)

## Signer Configuration (`signer`)

Settings related to the signing mechanism used by the node, particularly for aggregators that need to sign blocks.

**YAML Section:**

```yaml
signer:
# ... signer configurations ...
```

### Signer Type

**Description:**
Specifies the type of remote signer to use. Common options might include `file` (for key files) or `grpc` (for connecting to a remote signing service).

**YAML:**

```yaml
signer:
signer_type: "file"
```

**Command-line Flag:**
`--evolve.signer.type <string>`
*Example:* `--evolve.signer.type grpc`
*Default:* (Depends on application, often "file" or none if not an aggregator)
*Constant:* `FlagSignerType`

### Signer Path

**Description:**
The path to the signer file (if `signer_type` is `file`) or the address of the remote signer service (if `signer_type` is `grpc` or similar).

**YAML:**

```yaml
signer:
signer_path: "/path/to/priv_validator_key.json" # For file signer
# signer_path: "localhost:9000" # For gRPC signer
```

**Command-line Flag:**
`--evolve.signer.path <string>`
*Example:* `--evolve.signer.path ./keys/mykey.pem`
*Default:* (Depends on application)
*Constant:* `FlagSignerPath`

### Signer Passphrase

**Description:**
The passphrase required to decrypt or access the signer key, particularly if using a `file` signer and the key is encrypted, or if the aggregator mode is enabled and requires it. This flag is not directly a field in the `SignerConfig` struct but is used in conjunction with it.

**YAML:**
This is typically not stored in the YAML file for security reasons but provided via flag or environment variable.

**Command-line Flag:**
`--evolve.signer.passphrase <string>`
*Example:* `--evolve.signer.passphrase "mysecretpassphrase"`
*Default:* `""` (empty)
*Constant:* `FlagSignerPassphrase`
*Note:* Be cautious with providing passphrases directly on the command line in shared environments due to history logging. Environment variables or secure input methods are often preferred.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The flag names in this configuration reference and throughout the new documentation guides appear to be incorrect. For example, --evolve.node.aggregator should be --rollkit.node.aggregator. All Evolve-specific flags should use the rollkit. prefix as defined in pkg/config/config.go. Please perform a global check and correction of these flag names across all new documentation files.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@codecov
Copy link

codecov bot commented Aug 6, 2025

Codecov Report

❌ Patch coverage is 66.66667% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.66%. Comparing base (d0d7b05) to head (1c5a5bb).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
block/da_includer.go 0.00% 1 Missing and 1 partial ⚠️
block/manager.go 33.33% 0 Missing and 2 partials ⚠️
pkg/rpc/server/server.go 66.66% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2526      +/-   ##
==========================================
- Coverage   73.72%   73.66%   -0.06%     
==========================================
  Files          72       72              
  Lines        6713     6713              
==========================================
- Hits         4949     4945       -4     
- Misses       1364     1367       +3     
- Partials      400      401       +1     
Flag Coverage Δ
combined 73.66% <66.66%> (-0.06%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tac0turtle tac0turtle added this pull request to the merge queue Aug 6, 2025
Merged via the queue into main with commit 70c6813 Aug 6, 2025
34 of 37 checks passed
@tac0turtle tac0turtle deleted the marko/merge_docs branch August 6, 2025 09:09
@github-project-automation github-project-automation bot moved this to Done in Evolve Aug 6, 2025
alpe added a commit that referenced this pull request Aug 7, 2025
* main:
  fix: docs deployment (#2528)
  chore: merge docs repo into this repo (#2526)
  optimize: implement head index for BatchQueue.Next() to avoid O(n) slice re-slicing (#2519)
  build(deps): Bump github.com/rs/zerolog from 1.33.0 to 1.34.0 (#2525)
  chore: migrate from ipfs/go-log to zerolog across codebase (#2516)
  fix: proto inclusion (#2515)
  build(deps): Bump github.com/docker/docker from 28.2.2+incompatible to 28.3.3+incompatible in /test/docker-e2e in the go_modules group across 1 directory (#2503)
  refactor: replace Split in loops with more efficient SplitSeq (#2502)
  feat: expose ev-node P2P and RPC ports in docker compose (#2513)
  feat: create grpc execution environemnt (#2490)
@tac0turtle tac0turtle removed this from Evolve Aug 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants